package com.pawernode.service;

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.Date;

// 定义一个消息服务类，用于发送消息到RabbitMQ
@Component
@Slf4j
public class MessageService {

    // 注入RabbitTemplate用于发送消息
    @Resource
    private RabbitTemplate rabbitTemplate;

    /**
     * 发送消息到RabbitMQ
     * 此方法创建一个包含"hello rabbitmq"的消息，并将其发送到名为"exchange.normal.a"的交换机，路由键为"order"
     * 主要展示了如何构建消息以及如何使用RabbitTemplate发送消息
     */
    public void sendMsg() {
        // 构建消息体，内容为"hello rabbitmq"
        Message message = MessageBuilder.withBody("hello rabbitmq".getBytes()).build();
        // 发送消息到指定的交换机和路由键
        rabbitTemplate.convertAndSend("exchange.normal.a","order",message);
        // 记录日志，消息发送完毕
        log.info("消息发送完毕，发送时间为：{}",new Date());
    }
}
